package com.apps.java.javanote02;

public class _15接口 {
    /**
     *
     * 接口
     * 	一、概述
     * 		接口就是一种公共的规范标准，只要符合规范标准，大家都可以通用
     * 		java中的接口更多体现在对行为的抽象
     *
     * 	二、特点
     * 		1.接口用关键字interface修饰
     * 			public interface 接口名{}
     * 		2.类实现接口用implements表示
     * 			public class 类名 implements 接口名{}
     * 		3.接口不能实例化
     * 			如何实例化：参照多态的方式，通过实现类对象实例化，这也叫接口多态。
     * 		4.接口的实现类
     * 			a.要么重写接口中的所有抽象方法
     * 			b.要么本身也是抽象类
     *
     * 	三、接口的成员特点
     * 		1.成员变量
     * 			只能是常量
     * 			     默认修饰符：public static final
     * 		2.构造方法
     * 			接口没有构造方法，因为接口主要是对行为进行抽象的，没有具体存在
     * 			一个类如果没有父类，会默认继承Object类
     * 		3.成员方法
     * 			只能是抽象方法
     * 			      默认修饰符：public abstract
     *
     * 	四、类和接口的关系
     * 		1.类和类的关系
     * 			继承关系，只能单继承，但是可以多层实现
     * 		2.类和接口的关系
     * 			实现关系，可以单实现，也可以多实现，还可以在继承一个类的同时实现多个接口
     * 		3.接口和接口的关系
     * 			继承关系，可以单继承，也可以多继承
     *
     * 六、抽象类和接口的区别
     * 		1.成员区别
     * 			抽象类		可以有变量、常量、构造方法，有抽象方法也可以有非抽象方法。
     * 			接口			只能有常量、抽象方法
     * 		2.关系区别
     * 			类与类		继承，单继承，多层实现
     * 			类与接口		实现，可单实现也可以多实现
     * 			接口与接口		继承，单继承，多继承
     * 		3.设计理念却别
     * 			抽象类		对类抽象，包括属性、行为
     * 			接口			对行为抽象，主要是行为
     *
     * 	七、接口名作为形参和返回值
     * 		1.方法的形参是接口名，其实需要的是该接口的实现类对象
     * 		2.方法的返回值是接口名，其实返回的是该接口的实现类对象
     *
     */
}
